﻿Imports FinanceiroDAL
Imports Conection
Public Class FormasPgtoBLL
    Dim objDal As New FormasPgtoDAL
#Region "Propriedades"
    Property pagcodigo As Integer
    Property statuscodigo As Integer
    Property pagdescricao As String
#End Region
#Region "Construtores"
    Sub New()
    End Sub
    Sub New(ByVal codigo As Integer)
        carrega(codigo)
    End Sub
    Sub New(ByVal cod As Integer, ByVal status As Integer, ByVal descr As String)
        Me.pagcodigo = cod
        Me.statuscodigo = status
        Me.pagdescricao = descr
    End Sub
#End Region
#Region "Carrega Propriedades"
    Sub carrega(ByVal codigo As Integer)
        Dim tab As DataTable
        Try
            objDal = New FormasPgtoDAL
            tab = objDal.localiza(codigo)
            If (tab.Rows.Count > 0) Then
                Me.pagcodigo = Integer.Parse(tab.Rows(0)("pag_codigo").ToString)
                Me.statuscodigo = tab.Rows(0)("sta_codigo").ToString
                Me.pagdescricao = tab.Rows(0)("pag_descricao").ToString
            End If
        Catch ex As Exception
            Throw ex
        Finally
            objDal = Nothing
        End Try
    End Sub
#End Region
#Region "Limpa Propriedades"
    Sub limpar()
        Me.pagcodigo = Nothing
        Me.pagdescricao = Nothing
        Me.statuscodigo = Nothing
        Me.objDAL = Nothing
    End Sub
#End Region
#Region "Inserir"
    Function inserir() As Boolean
        Try
            If (Me.pagdescricao <> "") Then
                If (objfuncoes.ValidaReplica(Me.pagdescricao, Me.pagcodigo, "Generico.Gen_FormaPagamento", "pag_codigo", "pag_descricao").Rows.Count = 0) Then
                    objDal = New FormasPgtoDAL
                    Me.pagcodigo = objDal.inserir(Me.pagdescricao, Me.statuscodigo)
                Else : Throw New Exception("Forma de pagamento já cadastrada.")
                End If
            Else
                Throw New Exception("Preencha todos os campos.")
            End If
        Catch ex As Exception
            Throw ex
        Finally
            objDAL = Nothing
        End Try
        If (Me.pagcodigo <= 0) Then
            Return False
        Else : Return True
        End If
    End Function

#End Region
#Region "Alterar"
    Function alterar() As Boolean
        Dim ret As Integer
        Try
            ret = -1
            objDal = New FormasPgtoDAL
            If (Me.pagdescricao <> "") Then
                If (objDal.validaCtPagar(Me.pagcodigo)) Then
                    If (objDal.validaPgtoCtReceber(Me.pagcodigo)) Then
                        If (objfuncoes.ValidaReplica(Me.pagdescricao, Me.pagcodigo, "Generico.Gen_FormaPagamento", "pag_codigo", "pag_descricao").Rows.Count = 0) Then
                            ret = objDal.alterar(Me.pagcodigo, Me.statuscodigo, Me.pagdescricao)
                        Else : Throw New Exception("Forma de pagamento já cadastrada.")
                        End If
                    Else
                        MsgBox("A conta " & Me.pagdescricao & "  não pode ser alterada. Verificar utilização em Contas a Receber", MsgBoxStyle.Exclamation)
                    End If
                Else
                    MsgBox("A conta " & Me.pagdescricao & "  não pode ser excluída. Verificar utilização em Contas a Pagar", MsgBoxStyle.Exclamation)
                End If
            Else
                Throw New Exception("Preencha todos os campos.")
            End If
        Catch ex As Exception
            Throw ex
        Finally
            objDal = Nothing
        End Try
        If (ret <= 0) Then
            Return False
        Else : Return True
        End If
    End Function

#End Region
#Region "Excluir"
    Function Excluir(ByVal Codigo As Integer) As Boolean
        Dim ret As Boolean
        Dim tab As New DataTable
        Try
            objDal = New FormasPgtoDAL
            tab = objfuncoes.ValidaReplica("", Codigo, "Generico.Gen_FormaPagamento", "pag_codigo", "pag_descricao")
            If (objDal.validaCtPagar(Codigo)) Then
                If (objDal.validaPgtoCtReceber(Codigo)) Then
                    If (tab.Rows.Count = 0) Then
                        ret = objDal.Excluir(Codigo)
                        Return True
                    End If
                Else
                    MsgBox("A conta " & Me.pagdescricao & "  não pode ser excluída. Verificar utilização em Contas a Receber", MsgBoxStyle.Exclamation)
                    Return False
                End If
            Else
                MsgBox("A conta " & Me.pagdescricao & "  não pode ser excluída. Verificar utilização em Contas a Pagar", MsgBoxStyle.Exclamation)
            End If

        Catch ex As Exception
            Throw New Exception("Exclusão não realizada!")
        Finally
            tab = Nothing
            objDal = Nothing
        End Try
        Return ret
    End Function
#End Region
#Region "Localizar"
    Function localizar(ByVal codigo As Integer) As DataTable 'Localizar por Código
        Dim tab As DataTable
        Try
            objDal = New FormasPgtoDAL
            tab = objDal.localiza(codigo)
        Catch ex As Exception
            Throw New Exception("Dados não encontrados!")
        Finally
            objDal = Nothing
        End Try
        Return tab
    End Function
    Function localizaGeral() As DataTable 'localizar Geral
        Dim tab As DataTable
        Try
            objDal = New FormasPgtoDAL
            tab = objDal.localizaGeral()
        Catch ex As Exception
            Throw New Exception("Dados não encontrados!")
        Finally
            objDal = Nothing
        End Try
        Return tab
    End Function
    Function localizarDescricao(ByVal descricao As String) As DataTable 'localizar Descricao
        Dim tab As DataTable
        Try
            objDal = New FormasPgtoDAL
            tab = objDal.localizarDescricao(descricao)
        Catch ex As Exception
            Throw New Exception("Dados não encontrados!")
        Finally
            objDal = Nothing
        End Try
        Return tab
    End Function
    Function localizarStatus(ByVal status As String) As DataTable 'localizar do consulta
        Dim tab As DataTable
        Try
            objDal = New FormasPgtoDAL
            tab = objDal.localizaStatus(status)
        Catch ex As Exception
            Throw New Exception("Dados não encontrados!")
        Finally
            objDal = Nothing
        End Try
        Return tab
    End Function
#End Region
#Region "Buscar Filtro"
    Function buscar(ByVal descricao As String, filtro As Integer) As DataTable
        Dim ret As DataTable
        Try
            objDal = New FormasPgtoDAL
            ret = objDal.buscar(descricao, filtro)
        Catch ex As Exception
            Throw ex
        Finally
            objDal = Nothing
        End Try
        Return ret
    End Function
#End Region
End Class
